/*
1 输入框绑定 值改变事件 input事件
  1 获取输入框的值
  2 合法性的判断
  3 检验通过 把输入框的值发送到后台
  4 返回的值打印在页面上

2 防抖 (防止抖动)  定时器 节流
  0 防抖一般 输入框中 防止重复输入 重复发送请求
  1 节流 一般用作页面的下拉 上拉 等等
  1 定义一个全局的定时器ID

*/
import { request } from '../../request/index.js'
import regeneratorRuntime from '../../lib/runtime/runtime'

Page({
  data: {
    goods: [],
    // 取消的按钮 是否显示
    isFocus: false,
    // 输入框的值
    inValue: '',
  },
  TimeId: -1,
  // 输入框的值改变了救护触发的事件
  handleInput(e) {
    // 1 获取输入框的值
    const { value } = e.detail
    // 2 检查合法性
    if (!value.trim()) {
      this.setData({
        goods: [],
        isFocus: false,
      })
      // 不合法
      return
    }
    // 3 经过了验证 发送请求 获取数据
    this.setData({ isFocus: true })
    clearTimeout(this.TimeId)
    this.TimeId = setTimeout(() => {
      this.qseaarch(value)
    }, 1000)
  },

  // 发送请求 获取搜索建议 数据
  async qseaarch(query) {
    const res = await request({ url: '/goods/qsearch', data: { query } })
    // console.log(res)
    this.setData({
      goods: res,
    })
  },

  // 点击按钮 清除一切
  handleCancel() {
    this.setData({
      inValue: '',
      isFocus: false,
      goods: [],
    })
  },
})
